package com.study.bigdata.spark.core.rdd.operator.transform

import org.apache.spark.{SparkConf, SparkContext}

object Scala10_RDD_Operator_Transform{
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    conf.set("spark.local.dir","D:\\hadoopbook\\spark\\test")
    val sc = new SparkContext(conf)

    val rdd = sc.makeRDD(List(1,2,3,4,5,6),3)
    // TODO 算子 - 转换 - 缩减(合并)分区
    // 默认情况下缩减分区不会shuffle
    // 这种方式在某种情况下不能解决数据倾斜问题，所以可以在缩减分区的同时进行数据的shuffle
//    val rdd1 = rdd.coalesce(2)
    val rdd1 = rdd.coalesce(2,true)
    rdd.saveAsTextFile("output")
    rdd1.saveAsTextFile("output1")

    sc.stop()
  }

}
